Add HWH7 (STM32H743) config – initial#893
Conversation
Add target config for HW XROTOR-H7 (STM32H743). Dual SPI ICM-42688P IMUs with external CLKIN; MPU6000 drivers kept for backward compatibility. Barometer on I2C2 (supports BMP280 / MS5611 / DPS310); external magnetometer can share I2C2. MAX7456 OSD on SPI3. SDMMC (SDIO 4-bit) Blackbox enabled and set as default device. Motors on TIM1/TIM4, servos on TIM15, beeper PWM 3 kHz (inverted), LED strip enabled. Default ports: CRSF on USART1, MSP-DisplayPort on USART2, MSP on USART3, GPS on UART4, ESC telemetry on USART8. ADC: VBAT/CURR plus two external channels; defaults set (voltage scale 110, current scale 170, offset −350). Complete timer map and DMA options provided to avoid conflicts; DSHOT bitbang enabled. SWD enabled; PINIO defaults for “CAM 1,2” and “SW_VTX”.
WalkthroughAdds a new HWH7 board configuration header for STM32H743 defining MCU/board IDs, enabled sensors (dual ICM‑42688P gyros, DPS310 baro), pin/instance mappings for SPI/I2C/UART/SDIO/TIM/ADC, motor/servo/LED/beeper pins, DMA/timer options, PINIO boxes, and default serial/MSP/blackbox settings. Changes
Sequence Diagram(s)No sequence diagrams generated — changes are hardware configuration definitions without control-flow modifications. Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests
Tip 👮 Agentic pre-merge checks are now available in preview!Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.
Please see the documentation for more information. Example: reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"
mode: "warning"
instructions: |
Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).Please share your feedback with us on this Discord post. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
configs/XROTOR-H7/config.h (2)
28-36: Sensor driver set is appropriate for mixed production.Enabling both ICM42688P and MPU6000 aligns with auto-detect/back-compat strategy. Consider pinning a default with DEFAULT_GYRO_TO_USE to avoid ambiguity if both probe as present.
Apply near the gyro block:
+#define DEFAULT_GYRO_TO_USE GYRO_1
201-208: Gate MSP DisplayPort UART behind USE_OSD_HD.MSP_DISPLAYPORT_UART should be active only when building HD OSD. This avoids confusion on analog-only builds.
-#define MSP_DISPLAYPORT_UART SERIAL_PORT_USART2 +#ifdef USE_OSD_HD +#define MSP_DISPLAYPORT_UART SERIAL_PORT_USART2 +#endif
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
configs/XROTOR-H7/config.h(1 hunks)
🧰 Additional context used
🧠 Learnings (15)
📓 Common learnings
Learnt from: haslinghuis
PR: betaflight/config#0
File: :0-0
Timestamp: 2025-07-03T15:17:30.040Z
Learning: In Betaflight configurations, when a target name suggests dual IMUs (like JHEF7DUAL) but specific hardware variants only have one gyro available, the preferred solution is to use DEFAULT_GYRO_TO_USE macro to specify which gyro to use by default rather than pruning gyro defines or creating redundant configurations. This approach maintains compatibility when the same target is used by multiple hardware variants from the same manufacturer.
Learnt from: haslinghuis
PR: betaflight/config#835
File: configs/HDZERO_HALO_MPU6000/config.h:44-56
Timestamp: 2025-07-14T16:16:56.822Z
Learning: For Betaflight board configurations of boards already in production, pin assignments in config.h files reflect the actual hardware design and cannot be changed, even if they present potential conflicts with debug interfaces. The configuration must match the physical board layout, not ideal software design preferences.
📚 Learning: 2025-07-14T16:16:56.822Z
Learnt from: haslinghuis
PR: betaflight/config#835
File: configs/HDZERO_HALO_MPU6000/config.h:44-56
Timestamp: 2025-07-14T16:16:56.822Z
Learning: For Betaflight board configurations of boards already in production, pin assignments in config.h files reflect the actual hardware design and cannot be changed, even if they present potential conflicts with debug interfaces. The configuration must match the physical board layout, not ideal software design preferences.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-07-03T15:17:30.040Z
Learnt from: haslinghuis
PR: betaflight/config#0
File: :0-0
Timestamp: 2025-07-03T15:17:30.040Z
Learning: In Betaflight configurations, when a target name suggests dual IMUs (like JHEF7DUAL) but specific hardware variants only have one gyro available, the preferred solution is to use DEFAULT_GYRO_TO_USE macro to specify which gyro to use by default rather than pruning gyro defines or creating redundant configurations. This approach maintains compatibility when the same target is used by multiple hardware variants from the same manufacturer.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-07-23T13:43:50.456Z
Learnt from: ot0tot
PR: betaflight/config#0
File: :0-0
Timestamp: 2025-07-23T13:43:50.456Z
Learning: For Betaflight board configuration reviews, always verify that serial port defines (like ESC_SENSOR_UART, MSP_UART, GPS_UART, etc.) use valid SERIAL_PORT identifiers that match those defined in the Betaflight codebase at src/main/io/serial.h. Common valid identifiers include SERIAL_PORT_USART1, SERIAL_PORT_USART2, SERIAL_PORT_USART3, SERIAL_PORT_UART4, SERIAL_PORT_UART5, etc. Invalid identifiers like SERIAL_PORT_UART3 (should be SERIAL_PORT_USART3) will cause build failures.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-07-23T13:43:50.456Z
Learnt from: ot0tot
PR: betaflight/config#0
File: :0-0
Timestamp: 2025-07-23T13:43:50.456Z
Learning: For Betaflight board configuration reviews, always verify that serial port defines use valid identifiers from the serialPortIdentifier_e enum in src/main/io/serial.h. Valid identifiers include: SERIAL_PORT_USB_VCP (20), SERIAL_PORT_SOFTSERIAL1 (30), SERIAL_PORT_SOFTSERIAL2 (31), SERIAL_PORT_LPUART1 (40), SERIAL_PORT_UART0 (50, if SERIAL_UART_FIRST_INDEX == 0), SERIAL_PORT_USART1 (51 or 50), SERIAL_PORT_USART2, SERIAL_PORT_USART3, SERIAL_PORT_UART4, SERIAL_PORT_UART5, SERIAL_PORT_USART6, SERIAL_PORT_USART7, SERIAL_PORT_USART8, SERIAL_PORT_UART9, SERIAL_PORT_USART10. While some aliases exist (like SERIAL_PORT_UART3 = SERIAL_PORT_USART3), prefer using the primary identifiers as referenced in the serialPortIdentifiers array to avoid build failures.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-07-03T04:33:57.480Z
Learnt from: ot0tot
PR: betaflight/config#0
File: :0-0
Timestamp: 2025-07-03T04:33:57.480Z
Learning: Always verify that the BOARD_NAME define in each config.h matches the directory name it resides in (e.g., configs/AXISFLYINGF7AIO/config.h must have #define BOARD_NAME AXISFLYINGF7AIO). This check is required for all Betaflight board configuration reviews.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-08-20T02:54:58.596Z
Learnt from: ot0tot
PR: betaflight/config#872
File: configs/HGLRCH743/config.h:82-83
Timestamp: 2025-08-20T02:54:58.596Z
Learning: For Betaflight board configuration reviews, the definitive source for validating UART pin assignments is the serial_uart_{platform}.c file in the Betaflight codebase (e.g., serial_uart_stm32h7xx.c for STM32H7xx platforms), not generic MCU datasheets. These files contain the exact pin mappings that Betaflight supports for each UART peripheral.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-06-23T18:43:31.746Z
Learnt from: haslinghuis
PR: betaflight/config#822
File: configs/AXISFLYINGH7MINI/config.h:29-37
Timestamp: 2025-06-23T18:43:31.746Z
Learning: In Betaflight configuration files, feature enablement macros like USE_MAG are build options that can be controlled at compile time, while hardware instance definitions like MAG_I2C_INSTANCE are predefined in board configurations to assist with hardware mapping when those features are enabled at build time.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-08-22T17:08:23.283Z
Learnt from: haslinghuis
PR: betaflight/config#879
File: configs/AIRBOTSUPERF4V2/config.h:42-45
Timestamp: 2025-08-22T17:08:23.283Z
Learning: In Betaflight board configurations, OSD feature flags like USE_OSD_SD (analog/MAX7456) and USE_OSD_HD (digital/MSP DisplayPort) are typically defined at build time by the build system, not in the individual board config.h files. Board configs can conditionally define OSD-related settings based on these build-time flags.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-06-23T18:44:59.162Z
Learnt from: haslinghuis
PR: betaflight/config#822
File: configs/AXISFLYINGH7MINI/config.h:121-129
Timestamp: 2025-06-23T18:44:59.162Z
Learning: In Betaflight configuration files, USE_OSD_HD and USE_MAX7456 are for different OSD systems: USE_MAX7456 enables the MAX7456 analog OSD chip, while USE_OSD_HD enables HD/digital OSD via MSP. MSP_DISPLAYPORT_UART should be guarded by USE_OSD_HD, not USE_MAX7456, as they serve different OSD implementations.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-07-28T16:44:59.686Z
Learnt from: haslinghuis
PR: betaflight/config#656
File: configs/IFLIGHT_F745_AIO/config.h:31-35
Timestamp: 2025-07-28T16:44:59.686Z
Learning: In Betaflight board configurations, when a board design uses the same physical gyro socket but different sensor variants across production batches (e.g., MPU6000 in older batches, ICM42688P in newer batches), the correct approach is to enable both sensor drivers (USE_GYRO_SPI_MPU6000 and USE_GYRO_SPI_ICM42688P) in the same configuration. This allows runtime auto-detection of which sensor is actually present without requiring separate board configurations for each hardware variant.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-06-02T16:16:20.197Z
Learnt from: haslinghuis
PR: betaflight/config#0
File: :0-0
Timestamp: 2025-06-02T16:16:20.197Z
Learning: In STM32F405-based flight controller configurations, timer pin mappings must be carefully analyzed for DMA stream conflicts, especially between motor timers, LED strip timers, and SPI DMA assignments. Changes to TIMER_PIN_MAPPING should include verification that all required peripherals (motors, LED strip, blackbox SPI) can coexist without DMA conflicts.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-08-28T20:45:36.652Z
Learnt from: haslinghuis
PR: betaflight/config#888
File: configs/ZEX_ATHENA_MINI/config.h:0-0
Timestamp: 2025-08-28T20:45:36.652Z
Learning: In STM32H743 Betaflight configurations, PA15 maps to TIM2_CH1 (timer index 2) as defined in timer_stm32h7xx.c. When used for GYRO_CLKIN functionality, it's recommended to use the macro name GYRO_1_CLKIN_PIN in TIMER_PIN_MAPPING for consistency with other pin definitions.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-08-28T20:45:36.652Z
Learnt from: haslinghuis
PR: betaflight/config#888
File: configs/ZEX_ATHENA_MINI/config.h:0-0
Timestamp: 2025-08-28T20:45:36.652Z
Learning: In STM32H743 Betaflight configurations, PB0 can use multiple timer options including TIM1_CH2N, TIM3_CH3, and TIM8_CH2N as defined in timer_stm32h7xx.c. For CAMERA_CONTROL_PIN assignments, TIM3_CH3 (timer index 3) is the appropriate choice.
Applied to files:
configs/XROTOR-H7/config.h
📚 Learning: 2025-07-03T04:33:57.480Z
Learnt from: ot0tot
PR: betaflight/config#0
File: :0-0
Timestamp: 2025-07-03T04:33:57.480Z
Learning: Always verify that the `BOARD_NAME` define in config.h files exactly matches the directory name where the config file is located. For example, if the config file is in configs/AXISFLYINGF7AIO/config.h, then the BOARD_NAME should be defined as "AXISFLYINGF7AIO". This ensures proper board identification and configuration loading in Betaflight.
Applied to files:
configs/XROTOR-H7/config.h
🔇 Additional comments (9)
configs/XROTOR-H7/config.h (9)
24-27: BOARD_NAME/MCU/manufacturer IDs look correct.Values match the directory name and target MCU.
37-44: Baro/Mag on I2C2 OK.Shared I2C2 instance matches the stated hardware.
49-53: Confirm beeper polarity.BEEPER_INVERTED at 3 kHz assumes an active-low driver (common with NPN/open-drain). Please confirm the board’s beeper transistor stage matches this.
55-62: Timers/DMA mapping seems coherent but warrants a quick conflict check.TIM1/TIM4 for motors, TIM15 for servos, TIM5 for beeper/LED, and explicit DMA opts look fine. Recommend a quick build/run check with DMA conflict diagnostics to ensure SPIx/ADC and TIMUPx selections don’t collide under DMAMUX.
Also applies to: 155-171, 174-186
72-76: CLKIN pins use TIM16/TIM17; verify BF support for these as GYRO_CLKIN sources.PB8 (TIM16_CH1) and PB9 (TIM17_CH1) are valid timer channels on H743, but not all timers are accepted as CLKIN sources across targets. Please verify timer_stm32h7xx.c includes these channels for GYRO_CLKIN, or consider TIM2_CH1 on PA15 if hardware permits (it doesn’t here due to MAX7456 CS).
Also applies to: 155-171
116-123: MAX7456 on SPI3 with CS on PA15 looks fine with SWD-only debug.PA15 overlaps with JTAG JTDI but not SWD. Since you define SWDIO/SWCLK only, this is OK.
Also applies to: 151-154
187-196: PINIO defaults align with “CAM 1,2” and “SW_VTX”.Looks consistent with the PR objectives.
139-150: Confirm voltage meter macro in Betaflight source.
Ripgrep didn’t find any matches—please rerun the search from your Betaflight repo root (e.g.rg -n "DEFAULT_VOLTAGE_METER_SCALE(_DEFAULT)?" -C2) to determine whetherDEFAULT_VOLTAGE_METER_SCALE_DEFAULTorDEFAULT_VOLTAGE_METER_SCALEis actually referenced, then adjust the define inconfigs/XROTOR-H7/config.haccordingly.
107-108: UART5 pin mapping is invalid for STM32H743 and conflicts with SDIO alternatives.PB6/PB5 are not valid UART5 pins (they’re USART1/LPUART1 alts). Valid UART5 TX/RX are typically PC12/PD2, which you’re using for SDIO (CK/CMD). This will misconfigure or create a non-functional port.
Suggested fix: drop UART5 entirely to avoid invalid mapping and SDIO conflicts:
-#define UART5_TX_PIN PB6 // -#define UART5_RX_PIN PB5 //If UART5 is required, remap SDIO or pick a supported UART5 pin pair (e.g., PC12/PD2), but that would sacrifice SDIO.
⛔ Skipped due to learnings
Learnt from: osirisinferi PR: betaflight/config#872 File: configs/HGLRCH743/config.h:82-83 Timestamp: 2025-08-19T18:34:22.887Z Learning: For STM32H743, both UART5_TX (PB6) and UART5_RX (PB5) use alternate function AF14, not AF8. The Port B alternate functions table in the STM32H743 datasheet confirms PB5 supports UART5_RX and PB6 supports UART5_TX, both using AF14.Learnt from: haslinghuis PR: betaflight/config#870 File: configs/ZEX_ATHENA_STD_PRO/config.h:54-55 Timestamp: 2025-08-21T11:11:19.213Z Learning: For STM32H743 in Betaflight, UART4 can use PB8 (UART4_RX) and PB9 (UART4_TX) with GPIO_AF8_UART4, as confirmed in the official Betaflight codebase at src/platform/STM32/serial_uart_stm32h7xx.c. This is a valid pin mapping despite what some generic STM32 documentation might suggest.Learnt from: haslinghuis PR: betaflight/config#870 File: configs/ZEX_ATHENA_STD_PRO/config.h:54-55 Timestamp: 2025-08-21T11:11:19.213Z Learning: For STM32H743 in Betaflight, UART4 can use PB8 (UART4_RX) and PB9 (UART4_TX) as confirmed in the official Betaflight codebase at src/platform/STM32/serial_uart_stm32h7xx.c. This contradicts some generic STM32 documentation that might not show all supported pin configurations used by Betaflight.Learnt from: haslinghuis PR: betaflight/config#888 File: configs/ZEX_ATHENA_MINI/config.h:0-0 Timestamp: 2025-08-28T20:45:36.652Z Learning: In STM32H743 Betaflight configurations, PA15 maps to TIM2_CH1 (timer index 2) as defined in timer_stm32h7xx.c. When used for GYRO_CLKIN functionality, it's recommended to use the macro name GYRO_1_CLKIN_PIN in TIMER_PIN_MAPPING for consistency with other pin definitions.Learnt from: ot0tot PR: betaflight/config#0 File: :0-0 Timestamp: 2025-07-23T13:43:50.456Z Learning: For Betaflight board configuration reviews, always verify that serial port defines (like ESC_SENSOR_UART, MSP_UART, GPS_UART, etc.) use valid SERIAL_PORT identifiers that match those defined in the Betaflight codebase at src/main/io/serial.h. Common valid identifiers include SERIAL_PORT_USART1, SERIAL_PORT_USART2, SERIAL_PORT_USART3, SERIAL_PORT_UART4, SERIAL_PORT_UART5, etc. Invalid identifiers like SERIAL_PORT_UART3 (should be SERIAL_PORT_USART3) will cause build failures.Learnt from: ot0tot PR: betaflight/config#834 File: configs/RADIOLINKF405/config.h:79-88 Timestamp: 2025-07-14T15:41:14.364Z Learning: In STM32F405 configurations, PB1 typically maps to TIM3_CH4 and PC9 typically maps to TIM8_CH4. These are different timers and do not share DMA resources, so there is no conflict when both pins are used simultaneously (e.g., PB1 for LED_STRIP and PC9 for MOTOR4).Learnt from: haslinghuis PR: betaflight/config#881 File: configs/GEPRC_TAKER_H743MINI/config.h:86-99 Timestamp: 2025-09-01T19:58:52.005Z Learning: For STM32H743 in Betaflight, PB0 has multiple timer options but only timer index 2 provides a non-complementary output suitable for GYRO_CLKIN functionality. The other timer options for PB0 are N channels (complementary outputs) which are not appropriate for CLKIN usage.Learnt from: ot0tot PR: betaflight/config#872 File: configs/HGLRCH743/config.h:82-83 Timestamp: 2025-08-20T02:54:58.596Z Learning: For Betaflight board configuration reviews, the definitive source for validating UART pin assignments is the serial_uart_{platform}.c file in the Betaflight codebase (e.g., serial_uart_stm32h7xx.c for STM32H7xx platforms), not generic MCU datasheets. These files contain the exact pin mappings that Betaflight supports for each UART peripheral.Learnt from: haslinghuis PR: betaflight/config#883 File: configs/HGLRCF435_AIO/config.h:50-58 Timestamp: 2025-08-26T14:26:11.863Z Learning: For AT32F435 in Betaflight, UART4 supports multiple pin options including PH2 (UART4_RX) and PH3 (UART4_TX) with GPIO_MUX_8, as confirmed in the official Betaflight codebase at src/platform/AT32/serial_uart_at32f43x.c. The AT32 platform has broader pin support than initially apparent from basic searches.Learnt from: haslinghuis PR: betaflight/config#883 File: configs/HGLRCF435_AIO/config.h:50-58 Timestamp: 2025-08-26T14:26:11.863Z Learning: For AT32F435 in Betaflight, UART4 can use PH2 (UART4_RX) and PH3 (UART4_TX) as confirmed in the official Betaflight codebase at src/platform/AT32/serial_uart_at32f43x.c lines 183-212. This is a valid pin mapping for the AT32F435 platform.
- Optimized/standardized macros and defaults
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
Due to the default orientation issue between the MPU6000 and the ICM42688P, the MPU6000 driver has been removed. Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com>
Remove unused barometers Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com>
Correct the erroneous current scale and offset values.
Remove the macro that enables the ESC telemetry (feedback) interface by default. Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com>
Remove the default voltage-divider (VBAT) ratio setting. Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com>
Add essential comments to ease review.
Fix incorrect macro definitions; optimize timer configuration.
* Add XROTOR-H7 (STM32H743) config – initial Add target config for HW XROTOR-H7 (STM32H743). Dual SPI ICM-42688P IMUs with external CLKIN; MPU6000 drivers kept for backward compatibility. Barometer on I2C2 (supports BMP280 / MS5611 / DPS310); external magnetometer can share I2C2. MAX7456 OSD on SPI3. SDMMC (SDIO 4-bit) Blackbox enabled and set as default device. Motors on TIM1/TIM4, servos on TIM15, beeper PWM 3 kHz (inverted), LED strip enabled. Default ports: CRSF on USART1, MSP-DisplayPort on USART2, MSP on USART3, GPS on UART4, ESC telemetry on USART8. ADC: VBAT/CURR plus two external channels; defaults set (voltage scale 110, current scale 170, offset −350). Complete timer map and DMA options provided to avoid conflicts; DSHOT bitbang enabled. SWD enabled; PINIO defaults for “CAM 1,2” and “SW_VTX”. * Rename board to HWH7; set MANUFACTURER_ID to HOWI - Optimized/standardized macros and defaults * Change file name to match BOARD_NAME * 更新 config.h Co-authored-by: Mark Haslinghuis <mark@numloq.nl> * Update configs/HWH7/config.h Due to the default orientation issue between the MPU6000 and the ICM42688P, the MPU6000 driver has been removed. Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com> * Update configs/HWH7/config.h Remove unused barometers Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com> * Update config.h Correct the erroneous current scale and offset values. * Update configs/HWH7/config.h Remove the macro that enables the ESC telemetry (feedback) interface by default. Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com> * Update configs/HWH7/config.h Remove the default voltage-divider (VBAT) ratio setting. Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com> * Update config.h Add essential comments to ease review. * Update config.h Fix incorrect macro definitions; optimize timer configuration. * 更新 config.h Co-authored-by: Osiris Inferi <github@flut.nl.eu.org> * Update configs/HWH7/config.h Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com> * Update configs/HWH7/config.h Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com> * Update configs/HWH7/config.h Remove default receiver UART configuration. Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com> * Revert BEEPER PWM removal * Update configs/HWH7/config.h Delete useless macros. Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com> --------- Co-authored-by: Mark Haslinghuis <mark@numloq.nl> Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com> Co-authored-by: Osiris Inferi <github@flut.nl.eu.org>
Add target config for HOWI HWH7 (STM32H743).
Dual SPI ICM-42688P IMUs with external CLKIN; MPU6000 drivers kept for backward compatibility. Barometer on I2C2 (supports BMP280 / MS5611 / DPS310); external magnetometer can share I2C2. MAX7456 OSD on SPI3.
SDMMC (SDIO 4-bit) Blackbox enabled and set as default device. Motors on TIM1/TIM4, servos on TIM15, beeper PWM 3 kHz (inverted), LED strip enabled. Default ports: CRSF, MSP-DisplayPort on USART2, MSP on USART3, GPS on UART4, ESC telemetry on USART8. ADC: VBAT/CURR plus two external channels; defaults set (voltage scale 110, current scale 170, offset −350). Complete timer map and DMA options provided to avoid conflicts; DSHOT bitbang enabled. SWD enabled; PINIO defaults for “CAM 1,2” and “SW_VTX”.
Summary by CodeRabbit